# 读取文件：绝对路径的读取
# 使用open方式
"""
f = open(r"D:\qc3-automated-testing\day7\stu.txt",'r',encoding='utf-8')     # r 用读的方式打开
print(f.read())     # 读取文件内容
f.close()           # 在不使用文件的时候，记得关闭掉
"""
"""
# r 不转义
# \\ 不转义
\n  换行
\t  制表符
"""
# 读取文件：相对路径读取
# 使用open方式
"""
f = open('stu.txt','r',encoding='utf-8')
print(f.read())
f.close()
"""
# 读取文件，使用with open
"""
with open("stu.txt",'r',encoding='utf-8') as f:
    print(f.read())
"""
"""
with：管理上下文。文件打开后，不需要关闭的
as：起一个别名
"""
# 写入文件：覆盖写入
"""
with open('stu.txt','w',encoding='utf-8') as f:
    f.write("学生姓名：李四，年龄：20，地址：锦州")
"""
# 写入文件：覆盖写入多行内容，列表形式
"""
with open('stu.txt','w',encoding='utf-8') as f:
    f.writelines(['学生姓名：张三，年龄：21\n','学生姓名：李四，年龄：22'])
"""
"""
write：写入一行
writelines：写入多行，传入的是列表形式。需要换行要加上换行符：\n
"""
# 写入文件：追加写入
"""
with open('stu.txt','a',encoding='utf-8') as f:
    f.write('\n学生姓名：王加义，年龄：99')
"""
"""
模式：a；表示追加写入
"""
# 写入文件：追加写入多行
"""
with open('stu.txt','a',encoding='utf-8') as f:
    f.writelines(['\n学生姓名：秋实，年龄：85','\n学生姓名：王嘉会，年龄：95'])
"""
# 修改文件内容
"""
with open('stu.txt','r',encoding='utf-8') as f:
    r = f.readlines() # 会返回一个列表
print(f"原始列表：{r}")
print("==============")
for i in range(len(r)):
    if "李四" in r[i]:
        r.insert(i+1,"学生姓名：张四，年龄：25\n")
print(f"修改后列表：{r}")
with open('stu.txt','w',encoding='utf-8') as f:
    f.writelines(r)
"""
"""
把读取出来的内容，处理成列表，之后再对列表进行调整
使用w方式进行覆盖写入，把修改后的列表加进去就可以
"""
"""
result = []
for i in r:
    if "王加义" in i :
        pass
    else:
        result.append(i)
result.append("\n学生姓名：王五，年龄：20\n")
# print(result)
# 覆盖写入文件内
with open('stu.txt','w',encoding='utf-8') as f:
    f.writelines(result)
"""

# 修改文件内容：字符串替换方法
"""
with open("stu.txt",'r',encoding='utf-8') as f:
    all_data = f.read()   # 第一步：拿到所有的数据
# 原始文本内容
print(f"原始文本内容：{all_data}")
print("=======================================")
# 替换文本内容
all_data = all_data.replace("张三","张三峰")
print(f"替换后：文本内容为，{all_data}")

with open('stu.txt','w',encoding='utf-8') as f:
    f.write(all_data)
"""

